package org.bouncycastle.math.ec;

import java.math.BigInteger;

/**
 * Interface for classes encapsulating a point multiplication algorithm for
 * <code>ECPoint</code>s.
 */
interface ECMultiplier {
	/**
	 * Multiplies the <code>ECPoint p</code> by <code>k</code>, i.e. <code>p</code>
	 * is added <code>k</code> times to itself.
	 * 
	 * @param p           The <code>ECPoint</code> to be multiplied.
	 * @param k           The factor by which <code>p</code> i multiplied.
	 * @param preCompInfo PreCompInfo
	 * @return <code>p</code> multiplied by <code>k</code>.
	 */
	ECPoint multiply(ECPoint p, BigInteger k, PreCompInfo preCompInfo);
}
